//
//  DBVersionManager.h
//  DogeLegs
//
//  Created by 宋华 on 2017/8/25.
//  Copyright © 2017年 宋华. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface DBVersionManager : NSObject

+ (DBVersionManager*)sharedInstance;

- (void)dropDBVersionTable;

//内部方法，检查数据库是否已经内部初始化过了
- (BOOL)isDatabaseHasInitInternal:(FMDatabaseQueue*)queue;

//内部方法，内部初始化数据库
- (void)initDatabaseInternal:(FMDatabaseQueue*)queue;

//内部方法，获取数据库版本号
- (int)getCurrDatabaseVersion:(FMDatabaseQueue*)queue;

//内部方法，获取所有表的版本号
- (int)getCurrAllTableDBVersion:(FMDatabaseQueue*)queue;

//upradge数据库业务升级
- (void)upgradeBusiness:(int)oldVersion newVersion:(int)newVersion doneBlock:(void (^)(BOOL success))block;

#pragma mark - 暂时未用
//内部方法，获取聊天记录数据库版本号
- (int)getCurrMsgDatabaseVersion:(FMDatabaseQueue*)queue;


//内部方法，获取recent记录数据库版本号
- (int)getCurrRecentDatabaseVersion:(FMDatabaseQueue*)queue;


//内部方法，内部升级数据库信息
- (void)upgradeDatabaseInternal:(FMDatabaseQueue*)queue dbVersion:(int)dbVersion;

//内部方法，内部升级数据库信息
- (void)upgradeDatabaseInternal:(FMDatabaseQueue*)queue msgDBVersion:(int)msgDBVer;

//内部方法，内部升级数据库信息
- (void)upgradeDatabaseInternal:(FMDatabaseQueue*)queue recentDBVersion:(int)curDBVersion;


@end
